1. Field of the Invention
This invention relates to a data transferring method for transferring data between an initiator and plural targets.
This application claims the priority of the Japanese Patent Application No. 2002-167812 filed on Jun. 7, 2002, the entirety of which is incorporated by reference herein.
2. Description of Related Art
Nowadays, there is a demand for a high-speed interface, convenient for transferring digital data, such as acoustic data or picture data. Several next-generation interface standards have already been proposed, such that, as an interface for high speed data transfer not only between computers and peripherals but also between digital equipment including household equipment exemplified by digital video cameras, digital equipment, employing the IEEE1394 interface, have now begun to be commercialized. This interface standard, proposed by the IEEE (The Institute of Electrical and Electronics Engineers, Inc.), and prescribed as the IEEE Std. 1394-1995 IEEE Standard for a High Performance Serial Bus, has a high transfer rate of hundreds of Mbits/sec, and yet supports synchronous transfer, live-line connection/disconnection or high freedom degree connection topology, so that it is a high convenience serial interface which also takes general household use into account.
The technique employing this IEEE1394 interface has already been stated in for example the gazette of Japanese Patent 3091184. As stated in this gazette, in transferring digital data, using a packet composed of a preset data block and the appended information, such as the destination of transmission, a receipt equipment on receipt of the packet transmitted from the transmitting equipment returns an acknowledgment ACK representing the received state of the packet to the transmitting equipment of the source of transmission from time to time to cause the packet to be re-transmitted from the sending equipment as necessary, with a view to improving data transmission reliability. For example, in a packet communication between the first and second equipment, interconnected over the IEEE1394 interface, if a request packet requesting a preset operation from a first equipment 1 is sent to and received by a second equipment 2, an acknowledgment ACK representing the received state of the request packet is returned from the second equipment 2 to the first equipment 1, as shown in FIG. 11. This acknowledgment ACK includes the information for advising the source of transmission of the necessity for re-transmission, completion of receipt etc and, if the acknowledgment ACK requesting the re-transmission is received from the first equipment 1, the same request packet is re-transmitted from the first equipment 1 to the second equipment 2. If the completion of the receipt is informed by the above acknowledgment ACK to the first equipment 1, the preset operation is being performed by the second equipment 2. Thus, the first equipment 1 is in a standby state until such time a response packet associated with the request packet is transmitted from the second equipment 2. When the preset operation in the second equipment 2 has come to a close, the response packet, including the results of the above-mentioned preset operation, is sent from the second equipment 2 to the first equipment 1. On receipt of the response packet, the first equipment 1 returns an acknowledgment ACK, indicating the request for re-transmission or completion of processing, to the second equipment 2. If, in this case, the acknowledgment ACK is requesting re-transmission, the same response packet is retransmitted from the second equipment 2 to the first equipment 1. If the acknowledgment ACK indicates the end of the processing, the second equipment 2 is set to a state opened for the next processing.
Meanwhile, one of the application protocols in the above IEEE1394 interface is SBP-2 (Serial Bus Protocol 2). For illustrating this SBP2, FIG. 12 shows the relationship between the layered structure of the IEEE1394 interface and the SBP2. Referring to FIG. 12, the layered structure of the above IEEE1394 interface is basically made up by three layers, namely a physical layer, a link layer and a transaction layer. The SBP2 belongs to a transport layer which is higher than the transaction layer, and includes, for example, the functions of efficiently transmitting commands or data between the various devices, such as discs, tapes, printers, scanners or digital cameras, referred to below as nodes, or of notifying an application of an upper order than the SBP2 of the state of the operations of commands, results thereof or whether or not data transfer may be terminated. In the SBP2, the nodes responsible for sending out real commands, including management request commands, such as login of connection request, logout of connection completion or data write/readout, such as scanners or digital cameras, are termed initiators, while the nodes responsible for receiving the commands from the initiator to effect actual processing, such as discs, CD-ROMs or printers, are termed targets. It is between the initiators and the targets that communication takes place. As for the target, a logical unit equivalent to an actual device, namely the disc, CD-ROM and the printer, is strictly handled as a unit of such target, and communication takes place between at least one logical unit provided in the target and the initiator as a pair.
The procedure of the communication between the initiator and the target is shown in FIG. 13. FIG. 14 shows the data structure of a login request block in the SBP2, FIG. 15 shows the data format of a communication packet in the IEEE1394 interface, FIG. 16 shows the data structure of a login response block and FIG. 17 shows the data structure of a logout request block. Prior to transmission of all commands to a target 22, as a counterpart party of communication, an initiator 21 has to send out a login request to a logical unit of the target 22, as shown in FIG. 13. The data structure of a login request block is shown in FIG. 14. The data structure of the block in the SBP2 is termed an ORB (operation request block). In a “function” field of the log-in request block, among management blocks, there is stated “0” representing the login, as shown in FIG. 14. The logical unit of the target 22, a an object of login of the initiator 21, is specified by a “lun” field representing the logical unit number. This ORB is inserted into a data section of a transaction packet in the IEEE1394 interface shown in FIG. 15 and is sent by the transaction packet so as to be sent from the initiator 21 specified by an ID field as a source of transmission of the packet header to a target 22 specified by the ID field of a source of transmission of the packet header. On receipt of the login request packet from the initiator 21, the packet is accepted by a mechanism, termed a management agent, responsible for processing the management block, in the logical unit specified by the “lun” field of the target 22. The information pertinent to the base address of the register of this management agent (control and status register or CSR) is pre-stored in a ROM termed a configuration ROM. By referring to this configuration ROM, the management agent is able to accept the login request packet. The management agent verifies whether or not the login may be allowed in connection with the login request, that is whether or not communication is possible. If the login is allowable, a login response in meeting with the login request packet is returned from the target 22 to the initiator 21. The data structure of the login response request block is shown in FIG. 16. This login response request block includes a login ID field for identifying the login, and a command block agent field for stating the base address of the CSR of the mechanism, termed a fetch agent, in which the initiator 21 accepts a command request issued by the initiator 21 for the target 22 to perform the processing within the target 22. In this fetch agent, in distinction from the management agent, the relative address relationship in the register is predetermined, however, the base address itself is allocated to a position in a register space provided in an address space in the IEEE1394 interface for each login, so that, in order for the initiator to execute the command by the fetch agent, the above-mentioned base address is needed. If the login has met with success in this manner, the initiator 21 refers to the base address of the CSR of the fetch agent specified in the login response packet and, using this base address, a request for executing the command (write, readout and lock) is sent from the initiator 21 to the target 22. The target 22 holds a login identifier, including the logical unit number lun, login owner ID, . . . , login ID (loginID), for each login. When the target 22 receives a command execute request, the loginID associated with the source of transmission ID is referenced from the login identifier. Using the associated base address, the fetch agent is selected to execute the command. On completion of the processing of the command, the result is transmitted to the initiator 21, using the status block. When the needed command is executed in accordance with the above-described sequence of operations, the initiator 21 sends out a logout request to the target 22. The data structure of the logout request block is shown in FIG. 17. In this figure, the loginID field is included in the logout request block in which the loginID used in this communication is entered. In the function field, “7” indicating logout is entered. When the logout request packet is received by the target 22, the packet is accepted by the management agent in the target 22. Based on this loginID, the base address of the fetch agent, so far used, is set in a re-usable state. When the logout processing has come to a close, an end notice is sent to the initiator 21, using the status block. This terminates the communication such that the logical unit of the target 22 specified is opened.
In a data transfer system 2, shown in FIG. 18, data transfer is carried out using the above-described technique. The data transfer system 2 includes an initiator 21 and targets 22 to 24, as shown in FIG. 18. The respective equipment are interconnected by the aforementioned IEEE1394 interface.
FIG. 18 indicates that the target 21 transfers data to the initiator 20 and to the targets 22 and 23, the target 22 transfers data to the initiator 20, and that the target 24 transfers data to the targets 22 and 23.
Referring to FIG. 18, all data must traverse the initiator 20, so that, if the data is to be transferred from the target 21 to the target 22, the data needs to be transferred first from the target 21 to the initiator 20 and thence to the target 22, so that the transfer rate can scarcely be raised.
On the other hand, there are bidirectional transactions in the SBP2 by the aforementioned ORB, in addition to the data transfer. Due to these transactions, blank time is produced in data transfer to lower the data transfer speed, and hence the transfer rate can scarcely be raised.
Moreover, the handshaking between the equipment, needed in effecting the data transfer, has to be performed at least once every 65535 bytes which is provided for in the SBP2, with the result that the data transfer becomes time-consuming.
When data is read out from an external device, connected to a target, and the so read out data is transferred to plural targets, the data must be read out from the external device, for each target, and transferred to the targets, and hence plural transactions are produced on the inner bus of each target and on the IEEE1394 transactions, with the result that the data transfer rate tends to be lowered.
In addition, if, during data transfer by isochronous communication, the conventional data transfer method is used, and a data error has occurred, data re-transmission cannot be performed except on the page basis, with the result that the real-time characteristics tend to be lost. Furthermore, if the error processing described above is taken into account, data cannot be transferred except to a sole target.